package com.gnerv.battle.boot.module.base.business;

import com.gnerv.battle.boot.module.base.model.dto.ViewCreateDTO;
import com.gnerv.battle.boot.module.base.model.dto.ViewDTO;
import com.gnerv.battle.boot.module.base.model.dto.ViewRoleDTO;
import com.gnerv.battle.boot.module.base.model.dto.ViewTreeDTO;
import com.gnerv.battle.boot.module.base.model.dto.ViewUpdateDTO;
import com.gnerv.battle.boot.common.base.model.RestResult;

import java.util.List;

/**
 * @author ligen
 */
public interface ViewBusiness {

    RestResult<Void> create(ViewCreateDTO viewCreateDTO);

    RestResult<Void> deleteByUkId(String ukId);

    RestResult<Void> updateByUkId(ViewUpdateDTO viewUpdateDTO);

    RestResult<ViewDTO> selectByUkId(String ukId);

    RestResult<List<ViewDTO>> listByName(String name);

    RestResult<List<ViewDTO>> listByParentUkId(String parentUkId);

    RestResult<Void> bindRole(ViewRoleDTO viewRoleDTO);

    RestResult<List<ViewTreeDTO>> listTree(String parentUkId);
}
